package cc.rengu.redp.jmeter;

import cc.rengu.redp.common.utils.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GenerateUserTokens {

    private final static List<String> testUserList = new ArrayList<>();

    private static void init() {
        testUserList.add("test0");
        testUserList.add("test1");
        testUserList.add("test2");
        testUserList.add("test3");
        testUserList.add("test4");
        testUserList.add("test5");
        testUserList.add("test6");
        testUserList.add("test7");
        testUserList.add("test8");
        testUserList.add("test9");
//        testUserList.add("test10");
//        testUserList.add("test11");
//        testUserList.add("test12");
//        testUserList.add("test13");
//        testUserList.add("test14");
//        testUserList.add("test15");
//        testUserList.add("test16");
//        testUserList.add("test17");
//        testUserList.add("test18");
//        testUserList.add("test19");
//        testUserList.add("test20");
//        testUserList.add("test21");
//        testUserList.add("test22");
//        testUserList.add("test23");
//        testUserList.add("test24");
//        testUserList.add("test25");
//        testUserList.add("test26");
//        testUserList.add("test27");
//        testUserList.add("test28");
//        testUserList.add("test29");
//        testUserList.add("test30");
//        testUserList.add("test31");
//        testUserList.add("test32");
//        testUserList.add("test33");
//        testUserList.add("test34");
//        testUserList.add("test35");
//        testUserList.add("test36");
//        testUserList.add("test37");
//        testUserList.add("test38");
//        testUserList.add("test39");
//        testUserList.add("test40");
//        testUserList.add("test41");
//        testUserList.add("test42");
//        testUserList.add("test43");
//        testUserList.add("test44");
//        testUserList.add("test45");
//        testUserList.add("test46");
//        testUserList.add("test47");
//        testUserList.add("test48");
//        testUserList.add("test49");
//        testUserList.add("test50");
    }

    public static void main(String[] args) {
        init();
        List<String> tokens = new ArrayList<>();
        Map<String, String> params = new HashMap<>();
        params.put("captchaCode", "1234");
        params.put("captchaKey", "1234");
        params.put("password", "1234qwer");

        testUserList.forEach(user -> {
            params.put("username", user);
            String result = null;
            try {
                //登陆地址
                result = HttpUtil.postForm("http://localhost:8086/login", params);
            } catch (IOException e) {
                e.printStackTrace();
            }
            String token = ((JSONObject) JSON.parse(result)).getJSONObject("data").getString("token");
            if (StringUtils.isBlank(token)) {
                return;
            }
            tokens.add(user + "," + token);
            System.out.println(user + "," + token);
        });

        //输出文件路径
        File file = new File("/Users/marcus/Downloads/token-list.csv");
        BufferedWriter writer = null;
        try {
            if (!file.isFile()) {
                file.createNewFile();
            }
            writer = new BufferedWriter(new FileWriter(file));
            for (String t : tokens) {
                writer.write(t + "\n");
            }
            writer.flush();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (writer != null) {
                try {
                    writer.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
